{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.datasets import fetch_mldata\n",
    "mnist = fetch_mldata('mnist-original', data_home='./')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'DESCR': 'mldata.org dataset: mnist-original',\n",
       " 'COL_NAMES': ['label', 'data'],\n",
       " 'target': array([0., 0., 0., ..., 9., 9., 9.]),\n",
       " 'data': array([[0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        ...,\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0]], dtype=uint8)}"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mnist"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [],
   "source": [
    "X,y = mnist['data'],mnist['target']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(70000, 784)"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(70000,)"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [],
   "source": [
    "some_digit = X[36000]\n",
    "some_digit_image = some_digit.reshape(28, 28)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(some_digit_image, cmap = matplotlib.cm.binary)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5.0"
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y[36000]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [],
   "source": [
    "#建立测试集和训练集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train,X_test,y_train,y_test = X[:60000],X[60000:],y[:60000],y[60000:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([53347, 26364, 22972, ..., 41854, 45025, 16343])"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "shuffle_index = np.random.permutation(60000)\n",
    "shuffle_index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train, y_train = X_train[shuffle_index], y_train[shuffle_index]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0, 0, 0, ..., 0, 0, 0],\n",
       "       [0, 0, 0, ..., 0, 0, 0],\n",
       "       [0, 0, 0, ..., 0, 0, 0],\n",
       "       ...,\n",
       "       [0, 0, 0, ..., 0, 0, 0],\n",
       "       [0, 0, 0, ..., 0, 0, 0],\n",
       "       [0, 0, 0, ..., 0, 0, 0]], dtype=uint8)"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([False, False, False, ..., False, False, False])"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 训练一个二元分类器\n",
    "# 识别数字5，二元分类5或非5\n",
    "\n",
    "y_train_5 = (y_train == 5)\n",
    "y_train_5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[False, False, False, ..., False, False, False],\n",
       "       [False,  True, False, ..., False, False, False],\n",
       "       [False, False, False, ..., False, False, False],\n",
       "       ...,\n",
       "       [False, False, False, ..., False, False, False],\n",
       "       [False, False,  True, ..., False, False, False],\n",
       "       [False, False, False, ..., False, False, False]])"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train_5.reshape(20,-1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([False, False, False, ..., False, False, False])"
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_test_5 = (y_test == 5)\n",
    "y_test_5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([ True])"
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# SGD 梯度下降 分类器， 适合非常大的数据集，\n",
    "# 独立处理训练集数据，一次一个，适合在线学习，\n",
    "\n",
    "from sklearn.linear_model import SGDClassifier\n",
    "sgd_clf = SGDClassifier(random_state = 42)\n",
    "sgd_clf.fit(X_train,y_train_5)\n",
    "\n",
    "sgd_clf.predict([some_digit])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([0.96355, 0.96325, 0.9604 ])"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 性能考核\n",
    "# 使用交叉验证法测量精度\n",
    "\n",
    "from sklearn.model_selection import cross_val_score\n",
    "cross_val_score(sgd_clf,X_train,y_train_5,cv=3,scoring='accuracy')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 把每张图都分类成 非5\n",
    "from sklearn.base import BaseEstimator\n",
    "class Never5Classifier(BaseEstimator):\n",
    "    def fit(self, X, y=None):\n",
    "        pass\n",
    "    def predict(self, X):\n",
    "        return np.zeros((len(X), 1), dtype=bool)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[False],\n",
       "       [False],\n",
       "       [False],\n",
       "       ...,\n",
       "       [False],\n",
       "       [False],\n",
       "       [False]])"
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.zeros((len(X),1),dtype=bool)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.9108 , 0.90935, 0.9088 ])"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "never_5_clf = Never5Classifier()\n",
    "cross_val_score(never_5_clf, X_train, y_train_5, cv=3, scoring=\"accuracy\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 分类效果很好的原因是因为训练集中 5 的图像仅有10%"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [],
   "source": [
    "#混淆矩阵"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n"
     ]
    }
   ],
   "source": [
    "# 评估分类器性能的更好方法是混淆矩阵\n",
    "# A类别实例被分为B类别次数\n",
    "# 想要知道分类器将数字3和数字5混淆多少次，通过混淆矩阵的5行3列\n",
    "\n",
    "from sklearn.model_selection import cross_val_predict\n",
    "y_train_pred = cross_val_predict(sgd_clf,X_train,y_train_5,cv=3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "与 cross_val_score 相比\n",
    "同样执行交叉验证\n",
    "返回的不是评估分数，是每个折叠的预测\n",
    "每一个实例在模型预测时使用的数据，在训练期间从未见过"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[54018,   561],\n",
       "       [ 1695,  3726]])"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import confusion_matrix\n",
    "\n",
    "confusion_matrix(y_train_5, y_train_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[54579,     0],\n",
       "       [    0,  5421]])"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train_perfect_predictions = y_train_5\n",
    "confusion_matrix(y_train_5, y_train_perfect_predictions)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 精度和召回率\n",
    "# 如何设置阀值\n",
    "\n",
    "# 用predict_proba得到每个实例属于正类的概率，然后对概率切一下。以LogisticRegression为例\n",
    "# clf = LogisticRegression()\n",
    "# clf.fit(X_train, y_train)\n",
    "# pred_proba = clf.predict_proba(X_test)[:, 1]\n",
    "# threshold = 0.75  # 阀值设置为0.75\n",
    "# pred_label = pred_proba > threshold\n",
    "\n",
    "# pred_proba是每个实例为真的概率\n",
    "# 假设阈值是0.75\n",
    "# pred_label里True就是概率大于0.75的"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([31443.78236487])"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_scores = sgd_clf.decision_function([some_digit])\n",
    "y_scores"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [],
   "source": [
    "threshold = 0\n",
    "y_some_digit_pred = (y_scores > threshold)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ True])"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_some_digit_pred"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([False])"
      ]
     },
     "execution_count": 91,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 提高阀值可以降低召回率，提高阀值到200000，就错了这个图\n",
    "threshold = 200000\n",
    "y_some_digit_pred = (y_scores > threshold)\n",
    "y_some_digit_pred"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n"
     ]
    }
   ],
   "source": [
    "# 如何决定使用什么阀值\n",
    "# 返回决策值，而不是预测结果\n",
    "y_scores = cross_val_predict(sgd_clf, X_train, y_train_5, cv=3,\n",
    "                             method=\"decision_function\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(60000,)"
      ]
     },
     "execution_count": 93,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 有了y_scores，可以计算所有可能的阀值的精度和召回率\n",
    "y_scores.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import precision_recall_curve\n",
    "\n",
    "precisions, recalls, thresholds = precision_recall_curve(y_train_5, y_scores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 使用matplotlib 绘制精度和召回相对于阀值的函数图\n",
    "def plot_precision_recall_vs_threshold(precisions, recalls, thresholds):\n",
    "    plt.plot(thresholds, precisions[:-1], \"b--\", label=\"Precision\", linewidth=2)\n",
    "    plt.plot(thresholds, recalls[:-1], \"g-\", label=\"Recall\", linewidth=2)\n",
    "    plt.xlabel(\"Threshold\", fontsize=16)\n",
    "    plt.legend(loc=\"upper left\", fontsize=16)\n",
    "    plt.ylim([0, 1])\n",
    "\n",
    "plt.figure(figsize=(8, 4))\n",
    "plot_precision_recall_vs_threshold(precisions, recalls, thresholds)\n",
    "plt.xlim([-700000, 700000])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 21484 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 22238 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 31934 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 24230 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 21484 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 22238 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 31934 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 24230 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.rcParams['font.sans-serif'] = ['SimHei']\n",
    "def plot_precision_vs_recall(precisions, recalls):\n",
    "    plt.plot(recalls, precisions, \"b-\", linewidth=2)\n",
    "    plt.xlabel(\"召回\", fontsize=16)\n",
    "    plt.ylabel(\"精度\", fontsize=16)\n",
    "    plt.axis([0, 1, 0, 1])\n",
    "\n",
    "plt.figure(figsize=(8, 6))\n",
    "plot_precision_vs_recall(precisions, recalls)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_train_pred_90 = (y_scores>30000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'precision_score' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-98-b3d419c59d56>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mprecision_score\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my_train_5\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_train_pred_90\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m: name 'precision_score' is not defined"
     ]
    }
   ],
   "source": [
    "precision_score(y_train_5, y_train_pred_90)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "recall_score(y_train_5, y_train_pred_90)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {},
   "outputs": [],
   "source": [
    "# ROC曲线\n",
    "# 本质是 真正类率tpr和假正类率fpr（错误的分为正类的负类实例比例）\n",
    "# 与召回/精度曲线非常相似"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import roc_curve\n",
    "fpr,tpr,thresholds = roc_curve(y_train_5,y_scores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 20551 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 27491 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 31867 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 29575 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 30495 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 20551 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 27491 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 31867 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 29575 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 30495 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.rcParams['font.sans-serif'] = ['SimHei']\n",
    "def plot_roc_curve(fpr, tpr, label=None):\n",
    "    plt.plot(fpr, tpr, linewidth=2, label=label)\n",
    "    plt.plot([0, 1], [0, 1], 'k--')\n",
    "    plt.axis([0, 1, 0, 1])\n",
    "    plt.xlabel('假正类率', fontsize=16)\n",
    "    plt.ylabel('真正类率', fontsize=16)\n",
    "\n",
    "plt.figure(figsize=(8, 6))\n",
    "plot_roc_curve(fpr, tpr)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9607118038196952"
      ]
     },
     "execution_count": 102,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 计算曲线下面积AUC，虚线是随机分类0.5到1\n",
    "from sklearn.metrics import roc_auc_score\n",
    "\n",
    "roc_auc_score(y_train_5, y_scores)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "训练随机森林分类器，比较SGD分类器的ROC曲线和ROC AUC分数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/ensemble/weight_boosting.py:29: DeprecationWarning: numpy.core.umath_tests is an internal NumPy module and should not be imported. It will be removed in a future NumPy release.\n",
      "  from numpy.core.umath_tests import inner1d\n"
     ]
    }
   ],
   "source": [
    "from sklearn.ensemble import RandomForestClassifier\n",
    "forest_clf = RandomForestClassifier(n_estimators=10, random_state=42)\n",
    "y_probas_forest = cross_val_predict(forest_clf, X_train, y_train_5, cv=3,\n",
    "                                    method=\"predict_proba\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1. , 0. ],\n",
       "       [0.9, 0.1],\n",
       "       [1. , 0. ],\n",
       "       ...,\n",
       "       [1. , 0. ],\n",
       "       [1. , 0. ],\n",
       "       [0.9, 0.1]])"
      ]
     },
     "execution_count": 104,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_probas_forest"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_scores_forest = y_probas_forest[:, 1] \n",
    "fpr_forest, tpr_forest, thresholds_forest = roc_curve(y_train_5,y_scores_forest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0. , 0.1, 0. , ..., 0. , 0. , 0.1])"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_scores_forest"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 20551 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 27491 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 31867 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 29575 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 30495 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 20551 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 27491 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 31867 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 29575 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 30495 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(8, 6))\n",
    "plt.plot(fpr, tpr, \"b:\", linewidth=2, label=\"SGD\")\n",
    "plot_roc_curve(fpr_forest, tpr_forest, \"Random Forest\")\n",
    "plt.legend(loc=\"lower right\", fontsize=16)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9929055415338186"
      ]
     },
     "execution_count": 108,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "roc_auc_score(y_train_5, y_scores_forest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'precision_score' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-109-0e981faf1071>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0my_train_pred_forest\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcross_val_predict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mforest_clf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mX_train\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_train_5\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcv\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m3\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mprecision_score\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my_train_5\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_train_pred_forest\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m: name 'precision_score' is not defined"
     ]
    }
   ],
   "source": [
    "y_train_pred_forest = cross_val_predict(forest_clf, X_train, y_train_5, cv=3)\n",
    "precision_score(y_train_5, y_train_pred_forest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "recall_score(y_train_5, y_train_pred_forest)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 多类别分类器"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 尝试5 之外的检测\n",
    "多类别分类器 区分两个以上的类别\n",
    "随机森里和朴素贝叶斯可以直接处理多个类别\n",
    "支持向量机svm和线性分类器只可以处理二元分类器"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([5.])"
      ]
     },
     "execution_count": 110,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sgd_clf.fit(X_train, y_train)\n",
    "sgd_clf.predict([some_digit])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ -53574.87535368, -455434.42463671, -403626.44642101,\n",
       "        -114901.62062291, -444271.74499814,   31443.78236487,\n",
       "        -809447.51362022, -264703.17821214, -697596.69164432,\n",
       "        -633224.02001051]])"
      ]
     },
     "execution_count": 111,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 内部实际训练了10个二元分类器，获得图片的决策分数，然后选择分数最高的类别\n",
    "# 返回10个分数\n",
    "\n",
    "some_digit_scores = sgd_clf.decision_function([some_digit])\n",
    "some_digit_scores"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5"
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.argmax(some_digit_scores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5.0"
      ]
     },
     "execution_count": 113,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 目标类别列表会存储在class属性中，并按值的大小进行排列\n",
    "sgd_clf.classes_[np.argmax(some_digit_scores)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([5.])"
      ]
     },
     "execution_count": 114,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 使用OvO策略\n",
    "\n",
    "from sklearn.multiclass import OneVsOneClassifier\n",
    "ovo_clf = OneVsOneClassifier(SGDClassifier(max_iter=5, tol=-np.infty, random_state=42))\n",
    "ovo_clf.fit(X_train, y_train)\n",
    "ovo_clf.predict([some_digit])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "45"
      ]
     },
     "execution_count": 115,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(ovo_clf.estimators_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([5.])"
      ]
     },
     "execution_count": 117,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 使用随机森林\n",
    "forest_clf.fit(X_train,y_train)\n",
    "forest_clf.predict([some_digit])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.1, 0. , 0. , 0. , 0. , 0.9, 0. , 0. , 0. , 0. ]])"
      ]
     },
     "execution_count": 118,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 随机森林直接将实例分为多个类别，调用predict_proba()可以获得分类器将每个实例分类为每个类别的概率列表\n",
    "forest_clf.predict_proba([some_digit])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 评估分类器"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([0.84563087, 0.86114306, 0.86853028])"
      ]
     },
     "execution_count": 119,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 使用交叉验证评估SGD的准确率\n",
    "cross_val_score(sgd_clf,X_train,y_train,cv=3,scoring=\"accuracy\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([0.90531894, 0.91214561, 0.91083663])"
      ]
     },
     "execution_count": 120,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 将输入进行缩放\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "scaler = StandardScaler()\n",
    "X_train_scaled = scaler.fit_transform(X_train.astype(np.float64))\n",
    "cross_val_score(sgd_clf, X_train_scaled, y_train, cv=3, scoring=\"accuracy\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 错误分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 确定了一个相对合适的模型，进一步优化，分析其错误类型\n",
    "# 查看混淆矩阵\n",
    "# 使用交叉验证"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[5727,    2,   24,   11,   13,   49,   44,    7,   42,    4],\n",
       "       [   1, 6453,   47,   23,    6,   50,    6,   12,  134,   10],\n",
       "       [  52,   36, 5325,  104,   87,   24,   99,   59,  158,   14],\n",
       "       [  47,   33,  132, 5367,    2,  226,   33,   58,  137,   96],\n",
       "       [  18,   24,   38,   10, 5357,   11,   53,   35,   91,  205],\n",
       "       [  68,   38,   33,  195,   74, 4599,  119,   27,  180,   88],\n",
       "       [  35,   26,   46,    2,   41,   90, 5632,    5,   40,    1],\n",
       "       [  25,   20,   74,   28,   60,    9,    4, 5789,   18,  238],\n",
       "       [  51,  134,   81,  160,   17,  149,   60,   27, 5052,  120],\n",
       "       [  41,   29,   34,   90,  166,   37,    3,  206,   78, 5265]])"
      ]
     },
     "execution_count": 123,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train_pred = cross_val_predict(sgd_clf,X_train_scaled,y_train,cv = 3)\n",
    "conf_mx = confusion_matrix(y_train,y_train_pred)\n",
    "conf_mx"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 使用matplotlib的matshow 函数来查看混淆矩阵的图像表示\n",
    "plt.matshow(conf_mx, cmap = plt.cm.gray)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "metadata": {},
   "outputs": [],
   "source": [
    "'''\n",
    "看起来不错，大多数图片都在主对角线上，说明它们被正确分类\n",
    "数字5 看起来比较暗，说明1. 数字5图片较少  2. 分类器在数字5上执行效果不如其他数字上好\n",
    "假设把焦点放在错误上，为取得错误率，而不是错误绝对值，需要将混淆矩阵中每个值除以相应类别中的图片数量\n",
    "\n",
    "'''\n",
    "row_sums = conf_mx.sum(axis=1, keepdims=True)\n",
    "norm_conf_mx = conf_mx / row_sums"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 用0填充对角线 只保留错误，重新绘制\n",
    "np.fill_diagonal(norm_conf_mx, 0)\n",
    "plt.matshow(norm_conf_mx, cmap=plt.cm.gray)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 每行代表实际类别，每列代表预测类别\n",
    "# 8，9列比较亮，说明许多图片被错误的分类为数字8，9\n",
    "# 类别8，9行也偏亮，说明数字8和9经常会跟其他数字混淆\n",
    "# 有些很暗，比如行1，大多数数字1都被正确的分类，一些和8混淆\n",
    "# 5和3是错误最多的"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 如何优化分类器"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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KBSz7tO9WtPcTxNxcXFzXgFHKpWyaNEiMjIy0Ov1aLVaXC4XFouF7u5uQkNDBf+j2+0mMTGR+Pj4KSZfiUQiBCl6LIbeQi6XExoaSlFRkVC/2dNhZ7ZTrmal8LiIyGeMz+XJUUTkM8oV17OoTouIiIiIiExDFI4iIiIiIiLTEIWjiIiIiIjIND4qIOdf1bciIiLyQcT1LCJyjYgnRxERERERkWmIwlFERERERGQaonAUERERERGZhigcRUREREREpiEKRxERERERkWmIwlFERERERGQaonAUERERERGZhigcRUREREREpiEKRxERERERkWmIwlFERERERGQaonAUERERERGZhigcRUREREREpiEKRxERERERkWmIwlFERERERGQaonAUERERERGZhigcRUREREREpiEKRxERERERkWmIwlFERERERGQaonAUERERERGZhigcRUREREREpiEKRxERERERkWmIwlFERERERGQaonAUERERERGZhigcRUREREREpiEKRxERERERkWmIwlFERERERGQaonAUERERERGZhigcRUREREREpiEKRxERERERkWmIwlFERERERGQaonAUERERERGZhigcRUREREREpiEKRxERERERkWmIwlFERERERGQaonAUERERERGZhigcRUREREREpiEKRxERERERkWmIwlFERERERGQafh/xvntWRiEi8q+FZK4H8AkR17OIyAe54noWT44iIiIiIiLTEIWjiIiIiIjINEThKCIiIiIiMg1ROIqIiIiIiEzjowJyfIrNZsNms2G1WjGZTOj1eoxGI8PDwwAkJSWRnp6ORqOZy2GK/IszMDCA3W7H6XRy7tw5nE4nAG63G4lEMuXfWVlZZGdnz+VwPzPY7XZMJhMDAwMMDAxgNptxuVzMmzeP6OhogoKC5nqIIp9iBgcH6ezspL29HZfLNeW9gIAAtFotycnJhISEEBAQ4PXrz7pwdLlcuN1u3G43IyMjjIyMMDw8TEtLC6dPn6aqqoqysjLcbjd33303Dz30ENnZ2cIm5ovxOBwOZDIZMpnMJ9f4vGCz2YTnJJPJkErnzjDhcrmEBXXu3DkMBgM2m41vfetbmM3mK37Gz8+Pn/70p6JwnCGeez86OkprayuHDx/m4MGD9Pb2YrVaefDBB7nhhhuYN2/ejK7jcDiEvWT6XJNIJFfc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\n",
      "text/plain": [
       "<Figure size 576x576 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def plot_digits(instances, images_per_row=10, **options):\n",
    "    size = 28\n",
    "    images_per_row = min(len(instances), images_per_row)\n",
    "    images = [instance.reshape(size,size) for instance in instances]\n",
    "    n_rows = (len(instances) - 1) // images_per_row + 1\n",
    "    row_images = []\n",
    "    n_empty = n_rows * images_per_row - len(instances)\n",
    "    images.append(np.zeros((size, size * n_empty)))\n",
    "    for row in range(n_rows):\n",
    "        rimages = images[row * images_per_row : (row + 1) * images_per_row]\n",
    "        row_images.append(np.concatenate(rimages, axis=1))\n",
    "    image = np.concatenate(row_images, axis=0)\n",
    "    plt.imshow(image, cmap = matplotlib.cm.binary, **options)\n",
    "    plt.axis(\"off\")\n",
    "\n",
    "\n",
    "# 查看数字3和数字5的例子\n",
    "cl_a, cl_b = 3, 5\n",
    "X_aa = X_train[(y_train == cl_a) & (y_train_pred == cl_a)]\n",
    "X_ab = X_train[(y_train == cl_a) & (y_train_pred == cl_b)]\n",
    "X_ba = X_train[(y_train == cl_b) & (y_train_pred == cl_a)]\n",
    "X_bb = X_train[(y_train == cl_b) & (y_train_pred == cl_b)]\n",
    "\n",
    "plt.figure(figsize=(8,8))\n",
    "plt.subplot(221); \n",
    "plot_digits(X_aa[:25], images_per_row=5)\n",
    "plt.subplot(222); \n",
    "plot_digits(X_ab[:25], images_per_row=5)\n",
    "plt.subplot(223);\n",
    "plot_digits(X_ba[:25], images_per_row=5)\n",
    "plt.subplot(224); \n",
    "plot_digits(X_bb[:25], images_per_row=5)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 多标签分类"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 为每个实例产生多个类别 ，例如 照片识别多个人脸\n",
    "# 分类器经过训练可以识别小红，小白，小军，一张照片 里有 小红，小白\n",
    "# 经过分类器，应该输出[1,1,0]， 是小红，是小白，不是小军\n",
    "# 输出多个二元标签的分类系统称为多标签分类系统"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',\n",
       "           metric_params=None, n_jobs=1, n_neighbors=5, p=2,\n",
       "           weights='uniform')"
      ]
     },
     "execution_count": 130,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "y_train_large = (y_train >= 7)\n",
    "y_train_odd = (y_train % 2 == 1)\n",
    "y_multilabel = np.c_[y_train_large, y_train_odd]\n",
    "\n",
    "knn_clf = KNeighborsClassifier()\n",
    "knn_clf.fit(X_train, y_multilabel)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[False,  True]])"
      ]
     },
     "execution_count": 131,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "knn_clf.predict([some_digit])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 多输出分类"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 132,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 增加噪声，目标将图片还原为原始图片 创建训练集和测试集\n",
    "noise = np.random.randint(0, 100, (len(X_train), 784))\n",
    "X_train_mod = X_train + noise\n",
    "noise = np.random.randint(0, 100, (len(X_test), 784))\n",
    "X_test_mod = X_test + noise\n",
    "y_train_mod = X_train\n",
    "y_test_mod = X_test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "some_index = 5500\n",
    "plt.subplot(121);plt.imshow(X_test_mod[some_index].reshape(28, 28), cmap = matplotlib.cm.binary)\n",
    "plt.subplot(122);plt.imshow(y_test_mod[some_index].reshape(28, 28), cmap = matplotlib.cm.binary)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "metadata": {},
   "outputs": [],
   "source": [
    "knn_clf.fit(X_train_mod, y_train_mod)\n",
    "clean_digit = knn_clf.predict([X_test_mod[some_index]])\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(clean_digit.reshape(28, 28), cmap = matplotlib.cm.binary)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
